-
Notifications
You must be signed in to change notification settings - Fork 765
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Detect musl and error for musl pbs builds #6643
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
As described in #4242, we're currently incorrectly downloading glibc python-build-standalone on musl target, but we also can't fix this by using musl python-build-standalone on musl targets since the musl builds are effectively broken. We reintroduce the libc detection previously removed in #2381, using it to detect which libc is the current one. For simplicity, i've decided to just filter out the musl python-build-standalone archives from the list of available archive, given this is temporary. This means we show the same error message as if we don't have a build for the platform. We could also add a dedicated error message for musl. Fixes #4242 ## Test strategy On my ubuntu host, python downloads continue to pass: ``` target/x86_64-unknown-linux-musl/debug/uv python install ``` On alpine, we fail: ``` $ docker run -it --rm -v .:/io alpine /io/target/x86_64-unknown-linux-musl/debug/uv python install Searching for Python installations error: No download found for request: cpython-any-linux-x86_64-musl ```
zanieb
approved these changes
Aug 26, 2024
Can you add a note to https://docs.astral.sh/uv/concepts/python-versions/#managed-python-distributions |
Added docs, merging... |
tmeijn
pushed a commit
to tmeijn/dotfiles
that referenced
this pull request
Aug 28, 2024
This MR contains the following updates: | Package | Update | Change | |---|---|---| | [astral-sh/uv](https://github.com/astral-sh/uv) | patch | `0.3.2` -> `0.3.5` | MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot). **Proposed changes to behavior should be submitted there as MRs.** --- ### Release Notes <details> <summary>astral-sh/uv (astral-sh/uv)</summary> ### [`v0.3.5`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#035) [Compare Source](astral-sh/uv@0.3.4...0.3.5) ##### Enhancements - Add support for `--allow-insecure-host` (aliased to `--trusted-host`) ([#​6591](astral-sh/uv#6591)) - Read requirements from `requires.txt` when available ([#​6655](astral-sh/uv#6655)) - Respect `tool.uv.environments` in `pip compile --universal` ([#​6663](astral-sh/uv#6663)) - Use relative paths by default in `uv add` ([#​6686](astral-sh/uv#6686)) - Improve messages for empty solves and installs ([#​6588](astral-sh/uv#6588)) ##### Bug fixes - Avoid reusing state across tool upgrades ([#​6660](astral-sh/uv#6660)) - Detect musl and error for musl Python builds ([#​6643](astral-sh/uv#6643)) - Ignore `send` errors in installer ([#​6667](astral-sh/uv#6667)) ##### Documentation - Add development section to Docker guide and reference new example project ([#​6666](astral-sh/uv#6666)) - Add docs for `constraint-dependencies` and `override-dependencies` ([#​6596](astral-sh/uv#6596)) - Clarify package priority order in pip compatibility guide ([#​6619](astral-sh/uv#6619)) - Fix docs for disabling build isolation with `uv sync` ([#​6674](astral-sh/uv#6674)) - Improve consistency of directory lookup instructions in Docker ([#​6665](astral-sh/uv#6665)) - Improve lockfile concept documentation, add coverage for upgrades ([#​6698](astral-sh/uv#6698)) - Shift the order of some of the Docker guide content ([#​6664](astral-sh/uv#6664)) - Use `python` to highlight requirements and use more content tabs ([#​6549](astral-sh/uv#6549)) ### [`v0.3.4`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#034) [Compare Source](astral-sh/uv@0.3.3...0.3.4) ##### CLI - Show `--editable` on the `uv add` CLI ([#​6608](astral-sh/uv#6608)) - Add `--refresh` to `tool run` warning for `--with` dependencies ([#​6609](astral-sh/uv#6609)) ##### Bug fixes - Allow per dependency build isolation for `setup.py`-based projects ([#​6517](astral-sh/uv#6517)) - Avoid un-strict syncing by-default for build isolation ([#​6606](astral-sh/uv#6606)) - Respect `--no-build-isolation-package` in `uv sync` ([#​6605](astral-sh/uv#6605)) - Respect extras and markers on virtual dev dependencies ([#​6620](astral-sh/uv#6620)) - Support PEP 723 scripts in GUI files ([#​6611](astral-sh/uv#6611)) - Update lockfile after setting minimum bounds in `uv add` ([#​6618](astral-sh/uv#6618)) - Use relative paths for `--find-links` and local registries ([#​6566](astral-sh/uv#6566)) - Use separate types to represent raw vs. resolver markers ([#​6646](astral-sh/uv#6646)) - Parse wheels `WHEEL` and `METADATA` files as email messages ([#​6616](astral-sh/uv#6616)) - Support unquoted hrefs in `--find-links` and other HTML sources ([#​6622](astral-sh/uv#6622)) - Don't canonicalize paths to user requirements ([#​6560](astral-sh/uv#6560)) ##### Documentation - Add FastAPI guide to overview ([#​6603](astral-sh/uv#6603)) - Add docs for disabling build isolation with `uv sync` ([#​6607](astral-sh/uv#6607)) - Add example of reading script from stdin using echo ([#​6567](astral-sh/uv#6567)) - Add tip to use intermediate layers in Docker builds ([#​6650](astral-sh/uv#6650)) - Clarify need to include `pyproject.toml` with `--no-install-project` ([#​6581](astral-sh/uv#6581)) - Move `WORKDIR` directive in Docker examples ([#​6652](astral-sh/uv#6652)) - Remove duplicate `WORKDIR` directive in Docker example ([#​6651](astral-sh/uv#6651)) ### [`v0.3.3`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#033) [Compare Source](astral-sh/uv@0.3.2...0.3.3) ##### Enhancements - Add `uv sync --no-install-project` to skip installation of the project ([#​6538](astral-sh/uv#6538)) - Add `uv sync --no-install-workspace` to skip installation of all workspace members ([#​6539](astral-sh/uv#6539)) - Add `uv sync --no-install-package` to skip installation of specific packages ([#​6540](astral-sh/uv#6540)) - Show previous version in self update message ([#​6473](astral-sh/uv#6473)) ##### CLI - Add `--no-project` alias for `uv python pin --no-workspace` ([#​6514](astral-sh/uv#6514)) - Ignore `.python-version` files in `uv venv` with `--no-config` ([#​6513](astral-sh/uv#6513)) - Include virtual environment interpreters in `uv python find` ([#​6521](astral-sh/uv#6521)) - Respect `-` as stdin channel for `uv run` ([#​6481](astral-sh/uv#6481)) - Revert changes to pyproject.toml when sync fails duing `uv add` ([#​6526](astral-sh/uv#6526)) ##### Configuration - Add `UV_COMPILE_BYTECODE` environment variable ([#​6530](astral-sh/uv#6530)) ##### Bug fixes - Set `VIRTUAL_ENV` for `uv run` invocations ([#​6543](astral-sh/uv#6543)) - Ignore errors in workspace discovery with `--no-project` ([#​6554](astral-sh/uv#6554)) ##### Documentation - Add documentation for `uv python find` ([#​6527](astral-sh/uv#6527)) - Add uv tool install example in Docker ([#​6547](astral-sh/uv#6547)) - Document why we do lower bounds ([#​6516](astral-sh/uv#6516)) - Fix to miss string termination in PowerShell commands for shell autocompletion documentation ([#​6491](astral-sh/uv#6491)) - Fix incorrect workspace members keyword ([#​6502](astral-sh/uv#6502)) - Use proper environment variables for Windows ([#​6433](astral-sh/uv#6433)) - Improve caveat in `uvx` note ([#​6546](astral-sh/uv#6546)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this MR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box --- This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40NDAuNyIsInVwZGF0ZWRJblZlciI6IjM3LjQ0MC43IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJSZW5vdmF0ZSBCb3QiXX0=-->
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
As described in #4242, we're currently incorrectly downloading glibc python-build-standalone on musl target, but we also can't fix this by using musl python-build-standalone on musl targets since the musl builds are effectively broken.
We reintroduce the libc detection previously removed in #2381, using it to detect which libc is the current one before we have a python interpreter. I changed the strategy a big to support an empty
PATH
which we use in the tests.For simplicity, i've decided to just filter out the musl python-build-standalone archives from the list of available archive, given this is temporary. This means we show the same error message as if we don't have a build for the platform. We could also add a dedicated error message for musl.
Fixes #4242
Test Plan
Tested manually.
On my ubuntu host, python downloads continue to pass:
On alpine, we fail: